package April.april27;

import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/*
调用 配置文件 database
database.proterties : 和自己制作的jdbc工具类作用一样，只是在工具类中将密码和账户 注册 地址都写死了
            而利用 properties文件 则非常有利于后期的维护
            建议将properties文件放在 src文件下 这样 在给用户bin目录时 用户也可以拿到properties文件的编译文件

 */
public class PropertiesDemo_1 {
    public static void main(String[] args) throws IOException, SQLException, ClassNotFoundException {
//为什么bin目录下没有Class文件？
//        getClassLoader() 获取类的加载器，
//        .getResourceAsStream  返回读取指定资源的输入流
        //InputStream in = PropertiesDemo_1.class.getClassLoader().getResourceAsStream("database.properties");
        PropertiesDemo_1 propertiesDemo1 = new PropertiesDemo_1();
        propertiesDemo1.test();
    }

    public  void test() throws SQLException, ClassNotFoundException, IOException {
        File file = new File(PropertiesDemo_1.class.getResource("").getFile(), "database.properties").getCanonicalFile();
        FileInputStream in = new FileInputStream(file);
        Properties pro = new Properties();
        pro.load(in);

//       获取集合中的键值对
//        则以后在更改地址 用户名 密码时  只需要将properties文件中的键值对改变即可
//        则以后在更改地址 用户名 密码时  只需要将properties文件中的键值对改变即可
        String driverClass = pro.getProperty("driverClass");
        String url = pro.getProperty("url");
        String username = pro.getProperty("username");
        String password = pro.getProperty("password");

        Class.forName(driverClass);
        Connection con = DriverManager.getConnection(url,username,password);
        System.out.println(con);
    }
}
